package cn.zyb.basic.service;

import cn.zyb.basic.query.BaseQuery;
import cn.zyb.basic.util.PageList;

import java.util.List;

/**
 * @author zyb
 * @version 1.0.0
 * @date 2022年07月06日 11:07:09
 * @packageName cn.zyb.basic.service
 * @className IBaseService
 * @describe TODO
 */
public interface IBaseService<T> {
  /**
   * 查询所有
   */
  List<T> findAll();

  /**
   * 加载单个对象
   * @param id
   * @return
   */
  T findOne(Long id);

  /**
   * 保存一个对象
   * @param t
   */
  void add(T t);

  /**
   * 移除一个对象
   * @param id
   */
  void  del(Long id);

  /**
   * 更新一个对象
   * @param t
   */
  void update(T t);

  /**
   * 分页查询
   * @param baseQuery
   * @return
   */
  PageList<T> queryPage(BaseQuery baseQuery);

  /**
   * 批量删除
   * @param ids
   */
  void patchDel(List<Long> ids);
}
